#ifndef __KEYBOARD_H
#define __KEYBOARD_H

#include "common/types.h"
#include "hardwarecommunication/interrupts.h"
#include "driver/driver.h"
#include "hardwarecommunication/port.h"
#include "common/common.h"


class KeyboardEventHandler
{
private:
    /* data */
public:
    KeyboardEventHandler(/* args */);
    ~KeyboardEventHandler();
    virtual void OnKeyDown(char);
    virtual void OnKeyUp(char);
};







class KeyBoardDriver : public InterruptHandler,public Driver{

    Port8Bit dataPort;
    Port8Bit commandPort;
    KeyboardEventHandler* handler;
    protected:

    public:

    KeyBoardDriver(InterruptManager* interruptManager,KeyboardEventHandler* handler);
    ~KeyBoardDriver();
    virtual uint32_t HandleInterrupt(uint32_t esp);
    virtual void Activate();

};


#endif
